package com.richpay.basejava.base09;

/**
 * 方法重新(覆盖）的条件
 * 1. 发生在具有父子关系的两个类之间，子类必须继承到了父类的功能之后才能谈上有没有重写。
 * 2. 子类的方法名称、返回值的数据类型和参数列表和父类中需要重写的方法完全相同。
 * 3. 子类的访问权限不能比较父类的要求更严格。
 *     A、如果父类中方法的访问权限是私有的，那么子类就无法继承过来这个私有的方法，谈不上改写了。
 *     B、如果父类方法访问权限是默认权限，子类也是默认权限或者是protected、public，则此时发生了方法重写。
 *     C、如果父类方法访问权限是protected，则子类的访问权限可以是protected、public。
 *     D、如果父类方法访问权限是public，则子类只能是public
 *
 * 4. 如果父类的静态方法在子类中被改写了，可以认为发生了重写，也可以认为不算重写，有争议。
 * 5. 如果父类的方法是静止的，在子类中不能重写成非静态的，
 * 6. 如果父类的方法是非静态的，在子类中不能被重写成静态的。
 */
public class Cat extends Animal {
    @Override
    public void drink() {
        super.drink();
        System.out.println("猫在喝水....");
    }

    public  void display(){
        System.out.println("===Company.display()====");
    }
}
